#ifndef MODULE_GENERAL_REG_H
#define MODULE_GENERAL_REG_H

#include <module_header_reg.h>

#include <stdint.h>

//-------------- 1个字节 -------------------
// 寄存器0x47：状态详细参数-模式及自定义模式下的频率编号
//保留

//-------------- 1个字节 -------------------
// 寄存器0x48：MUX(1-3)使能/禁止寄存器
// 未使能的引脚, 负载都处于断开状态
// 0: 关闭
// 1: 使能
typedef struct{
    union{
        struct{
            uint8_t mux0        : 1;
            uint8_t mux1        : 1;
            uint8_t mux2        : 1;
            uint8_t             : 5;
        }pin;
        uint8_t value;
        uint8_t data[1];
    };
}module_mux_enable_reg_t;

//-------------- 1个字节 -------------------
// 寄存器0x49：状态详细参数-模式及自定义模式下的频率编号
//保留
typedef struct{
    union{
        struct{
            uint8_t ch0      : 1;
            uint8_t ch1      : 1;
            uint8_t ch2      : 1;
            uint8_t ch3      : 1;
            uint8_t ch4      : 1;
            uint8_t ch5      : 1;
            uint8_t ch6      : 1;
            uint8_t ch7      : 1;
        };
        uint8_t value;
        uint8_t data[1];
    };
}module_mux_channel_select_reg_t;

//-------------- 26个字节 -------------------
typedef struct
{
    union{
        struct
        {   
            module_reserved_reg_t                   module_reserved_01_reg[8];//8字节:保留         

            module_mux_enable_reg_t                     module_mux_enable_reg;//1字节:0x48

            module_reserved_reg_t                       module_reserved_04_reg;//1字节:0x09

            module_mux_channel_select_reg_t     module_mux0_channel_select_reg;//0x4A
            module_mux_channel_select_reg_t     module_mux1_channel_select_reg;//0x4B
            module_mux_channel_select_reg_t     module_mux2_channel_select_reg;//0x4C
        };
        
        uint8_t data[13];
    };
    
}module_general_reg_t;//13字节


typedef struct
{
    union
    {
        struct{
            module_header_reg_t       module_header_reg;//40字节
            module_general_reg_t module_general_reg;//13字节
        };
        uint8_t data[53];
    };
    
}module_reg_t;

#endif